portal.riversync.com — customer device monitoring: live telemetry, configuration and connection health for every RiverSync converged micro data center across your sites, whatever its model, plus the service that keeps it running.
RiverSync ships three product families across six models. The fleet is heterogeneous — generations, series and module counts differ — so telemetry shape differs by family and model. Every device on a customer's sites appears in the Portal regardless of family.
| Family | Models | In the field | Telemetry schema |
|---|---|---|---|
| Frigo | frigo 20 · frigo 30 | Edge / small-site enclosures | Refrigeration family — established shape |
| Koelkast | koelkast 20 · koelkast 30 | Larger enclosures, more cooling modules | Refrigeration family — wider module set |
| Nevera | nevera 30 · nevera 40 | Newest generation new to the model | Newer generation/series — additional fields |
Product-facing summary only — the pipeline, schema registry and storage strategy are specified in the Devices domain (SVC-DVC, SVC-9). The Portal does not own this data; it reads it.
Each device emits three independent streams to RiverSync's ingest plane (mTLS, never through the user gateway): telemetry (the live readings), the device twin (reported state + desired configuration), and connection (online/offline transitions). Readings land in a time-series store outside the relational model — the ⚠ the ERD records under PTL-1 — and only Alert rows cross into Postgres. A device catalog maps each unit to its (family, schema-version) so the Portal renders the right metrics per device; a device with no registered schema is read unknown-safe — never silently null-mapped (see PTL-7).
Live device monitoring — dashboards and per-device telemetry (temperature, power, PUE and per-module readings), health states and alert/alarm streams across all site locations. Values stream live and tween in the UI; deltas shown are factual. Telemetry is served from the time-series store, not Postgres (the ERD ⚠).
Alarms are actionable — acknowledge, see cause and effect ("MDC-6610 return air at 41.4°C — 6.4°C above setpoint"), and open a ticket from the alarm.
Per-device maintenance visibility — under the Portal's Maintenance menu (renamed from Agreement), each device shows its single active maintenance agreement — tier (Silver 8×5 NBD · Gold 24×7 ND), servicing partner, period and expiration — above the full list of its previous agreements, sorted latest to oldest. Renewals surface ahead of time (master PRT-2). Specified in the Maintenance PRD (SPEC-PRD-MNT, MNT-1/2).
Service & messaging — tickets are the single Service conversation surface: each ticket carries engineer visit scheduling and the message thread with RiverSync support or the servicing partner. Messages is merged into Tickets (prototype Jun 2026) — there is no separate Messages menu; the conversation lives inside the ticket.
Role-gated — what a member sees and controls (acknowledge, configure, control equipment, firmware) follows the Portal column of Account's permission matrix.
Family & model identity — every device is shown with its family (Frigo · Koelkast · Nevera), model and serial, and its dashboards group and filter by family/model/site. The customer never needs to know about schema versions; the Portal resolves them.
Schema-aware telemetry — metric and field sets differ per family, model and schema version (e.g. Nevera carries fields Frigo does not, and multi-module units report per module). The Portal renders the correct metric set for each device. A device whose schema is uncataloged or unregistered degrades gracefully: identity and connection state still show, its readings are marked unavailable rather than guessed, and it is flagged for RiverSync to catalog — never silently null-mapped or dropped.
Device twin visibility — each device shows its reported state (firmware version, operating mode, current setpoints) and, where permitted, its desired configuration. Configuration changes (setpoints, mode, firmware) are role-gated commands (PTL-5), always audited, and reconcile against the twin's reported state.
Connection state — online/offline, last-seen and link health come from the connection stream. Offline devices are visibly distinct, telemetry gaps are explained by connection loss rather than read as zeroes, and a device going offline can itself raise an alert (PTL-2).
History & export — telemetry is browsable over selectable time windows (with the time-series brush) and exportable. History depth follows the time-series store's retention; any gap from the legacy-store cutover is surfaced, not hidden.
Portal is customer-facing (entitlement: customer tenant — master AUTH-2). Partner members service devices in Partners; riversync staff monitor every customer's devices in the Operations console (the staff side of Portal). The sidebar below is the shell HUB_NAV model; every customer role (Owner · Administrator · Editor · Viewer) sees the whole sidebar — Portal gates by action within a surface (PTL-5), not by hiding menu items — so the matrix reads Full vs read-only rather than hidden. Capabilities follow the Portal column of Account's permission matrix (SPEC-APP-ACC ACC-2).
| Menu item | Owner | Admin | Editor | Viewer |
|---|---|---|---|---|
| Monitoring | ||||
| Dashboard | Read | Read | Read | Read |
| Devices | Full | Full | Full | Read |
| Alerts & Alarms | Full | Full | Full | Full |
| Support | ||||
| Maintenance | Read | Read | Read | Read |
| Tickets | Full | Full | Full | Full |
Within Devices, Editor can configure and set thresholds but cannot control equipment or push firmware (Owner / Admin only) — the cell reads Full for the surface, with those two commands reserved. Site locations are managed entirely in Account (ACC-1) and are not a Portal surface — the Portal carries no Site Locations page; each device shows its site as read-only context only (devices group and filter by site, PTL-6).
| Version | Date | Changes |
|---|---|---|
| 0.1 | 12 Jun 2026 | Initial draft — scope and five requirements from the platform model |
| 0.2 | 13 Jun 2026 | Vocabulary — fleet → devices: lead and PTL-1 now read "device monitoring" (SPEC-PRD v0.12); requirements otherwise unchanged |
| 0.3 | 26 Jun 2026 | Telemetry grounding + device taxonomy. Added §1 device families/models (Frigo · Koelkast · Nevera, six models — Nevera new, Device Model enum updated in SPEC-ERD; further cascade logged as an open question) and §2 telemetry data source (three IoT streams — telemetry · device twin · connection — and the time-series store, referencing SPEC-DDD-DVC / SVC-9). PTL-1 expanded (per-module readings, live stream). New requirements PTL-6…10: family/model identity, schema-aware telemetry for the heterogeneous fleet, device-twin visibility, connection state, history & export. PTL-2…5 meaning unchanged. |
| 0.4 | 26 Jun 2026 | Maintenance menu. PTL-3 reworked: the Portal surface is the Maintenance menu (renamed from Agreement) showing each device's single active maintenance agreement with its expiration above the previous-agreement history (latest→oldest). Detail consolidated into the new Maintenance PRD (SPEC-PRD-MNT). No change to PTL-1/2/4…10. |
| 0.5 | 27 Jun 2026 | Navigation & menu visibility (new §4). Documents the Portal sidebar (shell HUB_NAV) and a role × menu-item visibility matrix for the four customer roles. Records that Portal gates by action within a surface (PTL-5) rather than hiding menu items, with control/firmware reserved to Owner / Admin. Open questions and revision history renumbered §5–§6. No requirement-structure changes. |
| 0.6 | 28 Jun 2026 | Site Locations removed from Portal — sites are an Account-only surface. The Network → Site Locations menu group is dropped from the §4 nav rail and visibility matrix; site management lives solely in Account (ACC-1), and Portal shows a device's site only as read-only context (PTL-6). The shell HUB_NAV model and prototypes are updated to match. No change to the data model — the ERD already records Account as the owner (C·R·U·D) with Portal read-only. |
| 0.7 | 29 Jun 2026 | Messages merged into Tickets. The standalone Messages menu item is removed from §4 (nav rail + visibility matrix); the support/partner conversation now lives inside each ticket (PTL-4). The Service group is Maintenance · Tickets only. Prototype (apps/portal/Portal.html) updated to match. No data-model change — ChatThread/Ticket already share the conversation shape. |
| 0.8 | 29 Jun 2026 | Sidebar group renamed Service → Support. The second nav group (Maintenance · Tickets) is now labelled Support in §4 (nav rail + visibility matrix) and the prototype. Label only — no change to surfaces, requirements or gating. |